草庐IT

Android ProGuard +MultiDex 导致 ClassNotFoundException

全部标签

android - 在 AccountManager 中添加账户会导致死锁

当我看到用户在帐户管理器中没有帐户时,我尝试执行以下操作以将用户发送到帐户设置Activity并让他们创建一个帐户。AccountManagerFutureaddAccount=accountManager.addAccount(ACCOUNT_TYPE,TOKEN,null,null,MyActivity.this,//activitynull,//callbacknull);//handlerIntentresult=(Intent)addAccount.getResult().get(AccountManager.KEY_INTENT);startActivity(result)

android - CookieSyncManager导致的内存泄露(activity泄露)?

我在Eclipse中使用MAT工具调查内存泄漏问题,发现CookieSyncManager线程实例偶尔会泄漏我的Activity。从我的Activity到GCroot的路径如下:com.mycompany.myapp.MyActivity-->mContextcom.android.internal.policy.impl.PhoneFallbackEventHandler-->mFallbackEventHandlerandroid.view.ViewRoot-->targetandroid.os.Message-->java.lang.ThreadCookieSyncManager

android - 安卓手机锁屏导致后续的几个onPause/onResume事件

我在Android上开发时遇到了这种有点奇怪的行为,在我谷歌搜索期间,我能找到的唯一答案是这是设计使然,我不应该关心它。我的应用程序在Activity时获取位置数据,我打算通过在调用onPause事件时停止位置更新来实现一种节省电池电量的方法,然后在调用onResume事件时恢复获取。在调试时,我注意到锁定手机时出现了这种奇怪的行为,onPause->onResume接连被调用了3次或更多次,然后以onStop事件结束。我能找到的唯一答案是:Android就是这样工作的,没关系。我想我很好奇,有人可以向我解释多次停止和恢复简单子(monad)Activity的必要性吗?这不会消耗更多电

java - ProGuard 导致应用程序延迟

我试图用混淆器混淆代码,所以我在发布构建类型中启用了minify:buildTypes{debug{minifyEnabledfalse}release{minifyEnabledtrueproguardFilesgetDefaultProguardFile('proguard-android.txt')}}但是当我生成“releaseapk”并安装它后,应用程序运行变慢(滞后)..为什么在启用minify的情况下会发生这种情况?这是我的依赖项:dependencies{compile'com.android.support:support-v4:25.3.1'compile'com.

android - strings.xml 中定义的文字中未转义的撇号是否会导致我的应用程序崩溃?

Google的官方文档提到:转义撇号和引号如果字符串中有撇号或引号,则必须将其转义或将整个字符串括在其他类型的引号中。例如,这里有一些有效和无效的刺痛:"This'llwork"This\'llalsoworkThisdoesn'tworkXMLencodingsdon'twork我的问题是:未转义的引号是否会导致应用程序崩溃,或者它会不会产生任何影响并且引号不会出现在应用程序用户界面中?它会在特定的Android版本上崩溃吗?我问这个是因为如果我不转义这个符号,EclipseSDK会给我编译错误,但我遇到了一个第三方应用程序代码,它没有转义这些字符,它随机崩溃,我想确认这是

java - 为什么添加局部变量会导致方法延迟?

我最近开始阅读有关基准测试的内容并为Android(用Java)编写它们。我知道预热、垃圾收集器和编译器优化等问题,但不知道我遇到的问题是否可能是由这些问题引起的。在我的基准测试应用程序中,我创建了一个包含10,000个浮点变量的数组并使用随机值对其进行初始化。运行基准代码时:privatevoidrunMinorBenchmarkFloat(float[]array){floatsum=0;longstartTime;longendTime;/*Fastwarm-up*/startTime=System.nanoTime();for(inti=0;i在我的手机上,预热时间大约为2秒,

android - braintree 集成导致 Android 问题

我正在从服务器获取客户端token,但是当调用设置BraintreeFramgent时,它会显示token化key或客户端token无效。。然后如果我点击按钮然后OnActivityResult考虑RESULT_CANCELED并显示对话框。代码下方compile'com.braintreepayments.api:braintree:2.+'compile'com.braintreepayments.api:drop-in:2.+'Java文件StringclientToken;privateBraintreeFragmentmBraintreeFragment;privateStr

android - 运行单元测试用例时达到 Multidex 限制

我有一个应用程序,其中有本地单元测试(测试文件夹)和仪器单元测试用例(androidTest文件夹)。现在,如果我点击androidTest文件夹,然后点击“运行所有测试”,它会抛出以下异常。Error:Errorconvertingbytecodetodex:Cause:com.android.dex.DexIndexOverflowException:fieldIDnotin[0,0xffff]:65536Error:Executionfailedfortask':news-app:transformClassesWithDexForDebugAndroidTest'.>com.a

使用 ActivityInstrumentationTestCase2 进行 Android 单元测试,当先前的测试用例导致启动另一个 Activity 时,getActivity() 挂起

我正在尝试使用ActivityInstrumentationTestCase2为登录Activity运行多个测试用例。第一个测试用例测试登录成功,通过调用startActivity(Intentintent)导致Activity启动下一个Activity。现在,在我要测试的Activity之上还有另一个Activity。第一个测试用例通过,开始第二个测试用例。然而,当它被第二个测试用例调用时,它将永远卡在getActivity()上。如果我进入登录Activity的代码并注释掉调用startActivity(Intentintent)的部分,那么两个测试用例都会成功运行。我已经尝试了一

android - 注销和重新注册 GCM 消息会导致两个 regId 有效。这是预期的吗?

在Android设备上注册/取消注册GCM消息时,我注意到一些奇怪的行为。从客户端设备的角度观察以下用例:注册GCM--IDAassigned注销注册GCM--IDBassigned如果在第2步之后,服务器尝试向IDA发送消息,它将收到一个NotRegistered错误,asdocumented和预期。但奇怪的是:在第3步之后,IDA和B都是有效的ID!两个ID都会触发设备上的Intent接收器,从而向应用程序发送两条消息。这种行为是否符合预期,还是我做错了什么?这是我注册和取消注册的代码,在我的应用程序上启动第一个Activity时从onCreate()触发:publicvoidon